Many conventional computer software applications display information to a user on a display screen such as a conventional computer display. When a graphical user interface is used to display information, an element of the information may be displayed as an object on the screen. Objects are used to display information such as application program data, files, or other information, and may be displayed as a box or other simple shape, an icon such as a file folder, or a complete set of images displayed in a sequence to simulate a motion picture. Referring now to FIG. 1A, five objects 100, 102, 104, 106, 108 are shown.
Many conventional computer software applications utilize a user interface known as a window. The window is used as a portal to the information displayed by the computer software application, and at any time may allow for the display of a subset of the objects 100, 102, 104, 106, 108 which represent the information the software application is capable of displaying. The user is able to navigate among large amounts of information easily, because the user is only required to relate to the portion of the information that is displayed in the window at any time. In FIG. 1A, the objects 100, 102, 104, 106, 108 are enclosed in a window 160 displayed on a display screen 172. The window 160 is a rectangle that has an upper border 162, a left border 164, a right border 166 and a lower or bottom border 168 although other shapes of the window 160 are possible using any number of borders.
In some applications, the data is arranged in a hierarchical fashion, with each object being assigned a level in the hierarchy. In some of these applications, the data, and therefore the objects which represent the data, are related to one another in an inverted tree structure. A nomenclature associated with a family tree may be conveniently used. Thus, an object is related to one or more objects on the level beneath it by being a parent of such lower level objects, with each of the lower level objects having a common parent being siblings to one another. Each of these siblings may be parents of objects on still lower levels, and these objects would be descendants of the parent of their parent known as a grandparent, the parent of their grandparent, and so forth. A parent of an object is an ancestor of the object, as is the parent of the parent, and so forth.
Some graphical user interfaces display data as if the data is suspended in three dimensions, allowing a user to navigate past objects in three dimensions like astronauts navigating a spaceship among stars. A three-dimensional user interface can allow the user to view hierarchically arranged data by displaying objects at each level in a separate plane. Referring momentarily to FIG. 1B, a side view of the planes 122, 124, 126, 128 in a hierarchy as viewed by a user's eye 132 through the window 160 of FIG. 1A is shown. Data at the first level would be displayed as if it was in the first plane 122, data in the second level displayed as if it was in the second plane 124, and so forth. FIG. 1B shows only four planes 122, 124, 126, 128, however the number of planes on which objects are located may be infinite. In addition, each of the planes 122, 124, 126, 128 may itself have an infinite size in all dimensions. Each of the planes 122, 124, 126, 128 may be displayed as clear or tinted, and the objects displayed on the plane opaque. This allows a user 132 to see objects in more than one plane at a time, subject to objects in more distant planes being blocked by objects in planes that are nearer to the user.
Because conventional display screens display objects in two dimensions, the display of objects on different planes 122, 124, 126, 128 must be simulated. This simulation may be accomplished by displaying objects in a smaller size to simulate the objects being located on a plane 122, 124, 126, 128 that is more distant than other objects which are displayed larger. The simulation may also be accomplished by displaying objects in a different color or display intensity to simulate objects being displayed on different planes. Referring now to FIGS. 1A and 1B, object 100 is on the first level in the hierarchy, and objects 102, 104, 106, 108 are all on the second level of the hierarchy. Object 100 is displayed larger than the objects 102, 104, 106, 108 on the second level of the hierarchy to simulate object 100 occupying a position in plane 122 that is nearer to the user 132, and objects 102, 104, 106, 108 occupying positions on plane 124 which is further from the user 132.
The relationship between objects 100, 102, 104, 106, 108 displayed on a three-dimensional user interface may be graphically represented by clustering the child objects 102, 104, 106, 108 around the projection of their parent 100 on the plane directly behind the plane containing the parent. Thus, parent object 100 is on plane 122, while child objects 102, 104, 106, 108 are arranged around an invisible "shadow" of the parent object 100 on plane 124.
In contrast with a conventional two dimensional display of data in a window, where the user may navigate among the data by only moving the window 160 side to side on the x-axis, or up or down on the y-axis, in a three-dimensional user interface, the user may also navigate "in" or "out", i.e. in the positive or negative direction of the z-axis 134. As the user navigates "into", the window 160, i.e. in the positive z-axis direction, the user 132 and the window 160 do not move. Instead, the objects 100, 102, 104, 106, 108 are displayed differently to simulate the movement of the user 132 and the window 134 in one direction of the z-axis 134 or another. The differences simulate the planes 122, 124, 126, 128 on which the objects 100, 102, 104, 106, 108 are displayed moving in the opposite direction the user wishes to go. Thus, the differences in display simulate the objects 100, 102, 104, 106, 108 and the planes 122, 124, 126, 128 representing levels of the hierarchy moving toward the left of FIG. 1B to make the user appear that he is moving in the positive direction of the z-axis 134. Alternatively, planes 122, 124, 126, 128 may be simulated as moving to the right of FIG. 1B to make the user 132 appear that he is moving in the negative direction of the z-axis 134. Two types of changes are made to the window 160 to simulate this movement.
The first type of change concerns the type of objects that are displayed. Similar to a two dimensional window, which displays only a subset of the objects representing information the application program is capable of displaying in order to allow the user to focus on a portion of the information at a time, objects in a limited number of planes are displayed at any one time to avoid cluttering the window 160 in FIG. 1A and help the user focus on a subset of the planes 122, 124, 126. Only planes 122, 124, 126 between the window 160 and a horizon 130 which is a fixed distance 116 from the window 160, known as the horizon distance 116 from the window, are visible to the user. Objects 100, 102, 104, 106, 108 on any plane 122, 124, 126, 128 are only visible when the plane 122, 124, 126, 128 is visible because it is between the window 160 and the horizon 130. As the user interface simulates the planes 122, 124, 126, 128 moving to the left, some planes 122, 124, 126, 128 become visible on the horizon while other planes 122, 124, 126, 128 disappear to the left of the window 160, and as the user interface simulates the planes 122, 124, 126, 128 moving to the right, some planes 122, 124, 126, 128 disappear over the fixed horizon 130 while other planes 122, 124, 126, 128 appear when they pass the window 160. From the user's 132 point of view, as the user 132 navigates past one plane 122 representing one level of the hierarchy, objects 100 in the plane passed 122 disappear, and objects in the nearest non-displayed plane 128 appear. As the user navigates back through plane 122, it will reappear and plane 128 will disappear.
The second type of change concerns the displayed size and positions of the objects 100, 102, 104, 106, 108. To simulate the user approaching the objects 100, 102, 104, 106, 108, the dimensions of the objects 100, 102, 104, 106, 108, as well as the space, such as space 180A, between the objects 100, 102, 104, 106, 108 is made larger. To simulate the reverse, the dimensions of the objects 100, 102, 104, 106, 108, as well as the space between the objects 100, 102, 104, 106, 108 is made smaller.
Referring now to FIG. 1C, the objects 100, 102, 104,106, 108 of FIG. 1A are shown after a user has navigated closer to them according to a conventional three-dimensional user interface. Compared with the size of the objects 100, 102, 104,106, 108 of FIG. 1A, the objects 100, 102, 104,106, 108 of FIG. 1C are twice as large. Compared with the distance 180A between objects 100, 102, 104,106, 108 of FIG. 1A, the distance 180C between the parent object 100 and each of its children 102, 104,106, 108 has also increased by a factor of two.
Referring again to FIG. 1B, the user 132 indicates whether to navigate in the positive or negative direction of the z-axis 134 using one or more keyboard or mouse buttons. Each time the appropriate button is pressed by the user 132, 1 the distance 112 between the screen and the first plane displayed 122 changes. Because the spaces 114 between the planes containing each of the displayed objects does not vary, when 1 112 is adjusted, the distances of all of the planes 112, 124, 126 to the plane of the screen 172 must be simulated as being changed, either closer to the user 132 or farther from the user 132 by changing the size of each of the objects in all of the displayed planes 122, 124, 126. To allow the user to double the displayed size of an object using nine button presses, objects are enlarged or reduced by a factor of 1.08 per keypress. The x-y axis distance 108A between each object 102, 104, 106, 108 and its parent 100 is also changed by a factor of 1.08 for each keypress. After nine repeated keypresses to navigate in the direction of the positive z-axis 134, the displayed objects double in size, the x-y axis distances between the objects and their parents double in size from 180A to 180C, which simulates the planes 122, 124, 126, 128 advancing one interplane distance 114 nearer to the user 132. Other factors may be used to simulate the change in location of the planes a greater or less distance.
Referring now to FIGS. 1A and 1B, it is desirable to cluster the child objects 102, 104, 106, 108 close to their parent objects 100 to display the parent child relationship graphically and to allow for the display of a maximum number of objects in the window 160. However, as the plane containing the child objects 102, 104, 106, 108 approaches the window 160, it is desirable to ensure adequate space between the objects to allow the user 132 to maneuver among the objects and to allow room to display the descendants of the child objects 102, 104, 106, 108 in an uncluttered way.